home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Demos / OOFILE / Buildable, limited OOFILE / c-tree headers / ctcomm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-12  |  6.0 KB  |  291 lines  |  [TEXT/CWIE]

  1. /*
  2.  *    This program is the CONFIDENTIAL and PROPRIETARY property 
  3.  *    of FairCom(R) Corporation. Any unauthorized use, reproduction or
  4.  *    transfer of this computer program is strictly prohibited.
  5.  *
  6.  *      Copyright (c) 1984 - 1994 FairCom Corporation.
  7.  *    This is an unpublished work, and is subject to limited distribution and
  8.  *    restricted disclosure only. ALL RIGHTS RESERVED.
  9.  *
  10.  *            RESTRICTED RIGHTS LEGEND
  11.  *    Use, duplication, or disclosure by the Government is subject to
  12.  *    restrictions set forth in subparagraph (c)(1)(ii) of the Rights in
  13.  *     Technical Data and Computer Software clause at DFARS 252.227-7013.
  14.  *    FairCom Corporation, 4006 West Broadway, Columbia, MO 65203.
  15.  *
  16.  *    c-tree PLUS(tm)    Version 6.4
  17.  *            Release B
  18.  *            October 19, 1994
  19.  */
  20.  
  21. #ifndef ctCOMMH
  22. #define ctCOMMH
  23.  
  24. #ifndef ctSEMA
  25. #include "ctsema.h"
  26. #endif
  27.  
  28. #ifdef VINESSEC
  29. #ifndef ctST
  30. #ifdef __OS2__
  31. #include <streetta.h>
  32. #else
  33. #ifdef ctBAN5
  34. #include <ST.h>
  35. #else
  36. #include <streettalk.h>
  37. #endif
  38. #endif
  39. #define ctST
  40. #endif
  41. #endif
  42.  
  43. #ifdef ctSP
  44. typedef char far * far *    ppMTEXT;
  45. typedef char far *    pMTEXT;
  46. #else
  47. typedef char ctMEM *    pMTEXT;
  48. typedef char ctMEM *    ctMEM * ppMTEXT;
  49. #endif
  50.  
  51. #define ctNPATTRIBUTE_RECEIVE_TIMEOUT    1
  52. #define ctNPATTRIBUTE_SEND_TIMEOUT        2
  53.  
  54. #define CTNPSTART                0
  55. #define CTNPSTOP                1
  56. #define CTNPOPEN                2
  57. #define CTNPCLOSE                3
  58. #define CTNPWRITE                4
  59. #define CTNPREAD                5
  60. #define CTNPMAKENMPIPE            6
  61. #define CTNPDISCONNECTNMPIPE    7
  62. #define CTNPCONNECTNMPIPE        8
  63. #define CTNPALLOCATE             9
  64. #define CTNPSETATTRIBUTE         10
  65. #define CTNPGETATTRIBUTE         11
  66.  
  67. #define CTNPCTDEFER             0
  68. #define CTNPWAITWHILE             1
  69. #define CTNPRELEASEFLAG         2
  70. #define CTNPGETFLAG             3
  71. #define CTNPMEMORY             4
  72. #define CTNPMEMFREE             5
  73. #define CTNPUSERSTATUS         6
  74. #define CTNPREVOBJ                7
  75. #define CTNPWAITFLAG            8
  76.  
  77. #define CTNPDELIMITER             '@'
  78.  
  79. typedef struct {
  80.     pCOUNT     lfseg;    /* optional segment/map definitions */
  81.     COUNT     lfvar; /* # of var segments used in keys */
  82.     UCOUNT     lflen;    /* length */
  83.     COUNT     lftyp;    /* clstyp */
  84.     COUNT     lfmod;    /* file mode */
  85.     COUNT     lfkey;    /* key type & dup mode */
  86.     COUNT     lfrev;    /* key to dat map */
  87.     pCOUNT     lfalt;    /* alternative collating sequence */
  88. } LOCLFILE;
  89. typedef LOCLFILE ctMEM *    pLOCLFILE;
  90.  
  91.             /*
  92.             ** lfseg & lfvar not part of message; but app filno is.
  93.             */
  94. #define LOCLSIZE    (5 * SIZEOF(COUNT) + SIZEOF(UCOUNT))
  95.  
  96. typedef struct {
  97. #ifdef ctCONDIDX
  98.     pVOID    cndx;    /* conditional index ptr */
  99. #endif
  100.     LONG    curp;    /* current ISAM position */
  101.     LONG    vlen;    /* combined variable length */
  102.     LONG    rsv1;    /* reserved */
  103. #ifdef ctCONDIDX
  104.     COUNT    relk;    /* relative key number */
  105.     COUNT    rsv2;    /* reserved */
  106. #else
  107.     LONG    rsv2;
  108. #endif
  109. } LOCLAUX;
  110. typedef LOCLAUX ctMEM *    pLOCLAUX;
  111.  
  112. typedef struct reqpb {
  113.     COUNT     pbfn;    /* function #        */
  114.     COUNT     pbfl;    /* file #        */
  115.     LONG     pblg;    /* long value        */
  116.     VRLEN     pbsz;    /* length        */
  117.     VRLEN     pbol;    /* output length    */
  118.     COUNT     pbmd;    /* mode            */
  119.     COUNT     pbvr;    /* version #        */
  120.     COUNT     pbna;    /* # of arguments    */
  121.     COUNT     pbmp;    /* request map        */
  122. } reqPARMB;
  123. typedef reqPARMB ctMEM *    preqPARMB;
  124.  
  125. typedef struct    rsppb {
  126.     COUNT     qbfn;    /* function #        */
  127.     COUNT     qbfl;    /* file #        */
  128.     LONG     qblg;    /* long value        */
  129.     LONG     qbrv;    /* 2nd long        */
  130.     LONG     qbr3;    /* 3rd long        */
  131.     VRLEN     qbsz;    /* size value        */
  132.     COUNT     qbsh;    /* short value        */
  133.     COUNT     qber;    /* error code        */
  134.     COUNT     qbef;    /* error file (ISAM)    */
  135.     COUNT     qbio;    /* sysio code        */
  136.     LONG     qbat;    /* attention channel    */
  137. } rspPARMB;
  138. typedef rspPARMB ctMEM *    prspPARMB;
  139.  
  140. typedef LONG    Displace;
  141. typedef ULONG    RefVal;
  142.  
  143. typedef struct {
  144.     pMTEXT    pMsg;
  145.     ULONG    msgLen;
  146. } MSGVEC;
  147.  
  148. typedef MSGVEC ctMEM * pMSGVEC;
  149.  
  150. #define ctSETMSG(m, p, l)        m.pMsg = (pMTEXT)p; \
  151.                                         m.msgLen = (ULONG)l
  152. #define ctGETMSG(msg)                        msg.pMsg
  153. #define ctGETMSGLEN(msg)                    msg.msgLen
  154.  
  155. typedef struct {
  156.     ULONG         location;
  157.     RefVal         value;
  158. } Reference;
  159.  
  160. typedef struct vab {
  161.     ULONG         flags;
  162.     Reference     ref;
  163.     Displace     reqLength;
  164.     Displace     posOffset;
  165.     struct vab    *vabMate;
  166.     struct vab    *nxtVab;
  167. } VAB;
  168. typedef VAB ctMEM *    pVAB;
  169.  
  170. #ifdef NO_BOUND
  171. typedef struct lqmsg {
  172.     VRLEN    lmlen[OUTSEG]; /* Protocol Byte Box */
  173.     pMTEXT    lctusrbuf;
  174.     pFarCmdPtr lcommcmds;
  175.     pUGRUP  lgptr;
  176.     SEMA    lclnt;
  177.     SEMA    lsrvr;
  178.     LONG    lcpid;    /* communications protocol id */
  179.     LONG    lupid;
  180.     LONG    lmemu;
  181.     LONG    lattr;
  182.     LONG    lrsv1;
  183.     LONG    lrsv2;
  184.     VRLEN    lsize;
  185.     COUNT    lerrc;
  186.     COUNT    lmode;
  187.     COUNT    lslct;
  188.     UCOUNT    lhdl;
  189.     UCOUNT    lrsvd;
  190.     COUNT    ltask;
  191.     UTEXT    lflvr;
  192.     UTEXT    lalgn;
  193.     TEXT    lusid[IDZ];
  194.     TEXT    luswd[PWZ];
  195. } LQMSG;
  196.  
  197. typedef struct {
  198.     VRLEN    lmlen[OUTSEG];
  199.     TEXT    lctusrbuf[4];
  200.     TEXT    lcommcmds[4];
  201.     TEXT    lgptr[4];
  202.     TEXT    lclnt[8];
  203.     TEXT    lsrvr[8];
  204.     LONG    lcpid;    /* communications protocol id */
  205.     LONG    lupid;
  206.     LONG    lmemu;
  207.     LONG    lattr;
  208.     LONG    lrsv1;
  209.     LONG    lrsv2;
  210.     VRLEN    lsize;
  211.     COUNT    lerrc;
  212.     COUNT    lmode;
  213.     COUNT    lslct;
  214.     UCOUNT    lhdl;
  215.     UCOUNT    lrsvd;
  216.     COUNT    ltask;
  217.     UTEXT    lflvr;
  218.     UTEXT    lalgn;
  219.     TEXT    lusid[IDZ];
  220.     TEXT    luswd[PWZ];
  221. } LOGON_REQUEST, ctMEM *pLOGON_REQUEST;
  222.  
  223. typedef struct lqmsg2 {
  224.     TEXT    lnodname[IDZ];
  225.     TEXT    ltickle;
  226.     UTEXT    lpntr;
  227.     UTEXT    lrsv1;
  228.     UTEXT    lrsv2;
  229.     TEXT    pad[92];
  230. } LQMSG2;
  231.  
  232. typedef struct lqrsp {
  233.     LONG    divs;
  234.     LONG    nusers;
  235.     UTEXT    sflvr[8];
  236.     UCOUNT    sndTimeOut;
  237.     UCOUNT    recTimeOut;
  238.     UTEXT    pad[108];
  239. } LQRSP;
  240.  
  241. #ifdef ctSP
  242. typedef LQMSG far   *    pLQMSG;
  243. typedef LQMSG2 far   *    pLQMSG2;
  244. typedef LQRSP far   *    pLQRSP;
  245. #else
  246. typedef LQMSG ctMEM *    pLQMSG;
  247. typedef LQMSG2 ctMEM *    pLQMSG2;
  248. typedef LQRSP ctMEM *    pLQRSP;
  249. #endif
  250.  
  251. #ifdef VINESSEC
  252. typedef struct stmsg {
  253.     TEXT    susid[IDZ];
  254.     TEXT    sgrp[IDZ];
  255.     IPCPORT sport;
  256.     ULONG    sstamp;
  257.     ULONG    sdate;
  258.     TEXT    sserver[6];
  259.     TEXT    sfiller[2];
  260. } STMSG;
  261.  
  262. #ifdef ctSP
  263. typedef STMSG far   *    pSTMSG;
  264. #else
  265. typedef STMSG ctMEM *    pSTMSG;
  266. #endif
  267.  
  268. #endif
  269.  
  270. #endif /* ctSERVER */
  271.  
  272. #define U_UID(t)    (ctiuser[t].tfilno + 1)
  273. #define G_GID(t)    (ctigroup[t].tfilno + 1)
  274. #define UG_UNM(t)    (ctiug[t].tfilno + 1)
  275.  
  276. #define    PutMessage    1
  277. #define ctGetMessage    2
  278. #define FnlMessage    3
  279.  
  280. #define DataTerminated        0x000001L
  281. #define EndOfMessage        0x000002L
  282. #define MustSendNow        0x000004L
  283. #define RefIsMemory        0x000008L
  284. #define MustBeData        0x000010L
  285. #define WaitForCompletion    0x000020L
  286. #define RefIsUnused        0x000040L
  287.  
  288. #endif /* ctCOMMH */
  289.  
  290. /* end of ctcomm.h */
  291.